package com.ht.callback.function;

import com.ht.callback.annotation.HtFunction;

import cn.hutool.json.JSONObject;

/**
 * 平台函数
 * @author asq
 * @createTime 2024年12月18日 21:12:34
 */
@HtFunction
public interface Function {
	/**
	 * 激活函数：新平台接入时，获取对应平台要求的校验结果
	 * @param appConfig app配置
	 * @param paramUrl url参数
	 * @param body body参数
	 * @return
	 */
	public String active(JSONObject appConfig, JSONObject paramUrl, String body);
	
	/**
	 * 验签函数：收到回调通知时，执行相应的验签操作，确保数据来源合法
	 * @param appConfig app配置
	 * @param paramUrl url参数
	 * @param body body参数
	 * @return
	 */
	public String verifySign(JSONObject appConfig, JSONObject paramUrl, String body);
	
	/**
	 * 返回函数：回调操作完毕后，获取对应平台要求的返回对象
	 * @param paramUrl url参数
	 * @param body body参数
	 * @return
	 */
	public String result(JSONObject paramUrl, String body);
}
